stage4day4section5
Section5:Transformer
【謎】講義の動画で言ってる「この本」ってなに?
BERTまでのロードマップ
Seq2Seq
Encoder-Decoder Model
↓
Transformer
Encoder-Decoder Model × Attention
↓
BERT
なので、
Seq2seqとTransformerを理解する。
■BERT1_Seq2seq
・Bert : Transformerが複数入ったもの
・Seq2seq : Sequence to Sequence(系列、日本語から英語)
- RNN
> 系列情報は順番が重要
> 最終的に内部状態ベクトルを出力する
- 言語モデル
> 単語の並びに対して、事後確率最大を計算する
> 決定的 : 0か1か ⇔ 確率分布
> Start of sentence
> 言語の自然な並び方を学習する
- RNNが2つ連結したもの
> 1つ目がエンコーダ、2つ目がデコーダ
内部状態ベクトルを出力することエンコード
デコーダは生成モデル
両者の違いは初期値としてhが与えられるかどうか
> デコーダのアウトプットに正解を与えれば、教師あり学習がend2endで行える
> Googleの翻訳システムもRNNベースで、何層にもしたもの
- Teacher Forcing
> 正解ラベルを直接デコーダの入力にする
訓練とテストで状態が異なるので、テスト結果が悪い可能性がある
■BERT2_Transformer
・seq2seqの弱点
- 長い文章に弱い、表現力が足りなくなる
> 翻訳元の文章を一つのベクトル表現にしてしまうため。
・合計1となる重み付けで単語同士の関連付け
・対応関係において注意を払うべき対象を絞る
Transformer 2017年、爆誕
-LSTMに次ぐ、次世代のユニットと言われている
-特徴: RNNを使わない、Attentionだけ
・重要なモジュール4つ
1. 位置情報を付加
2. Attention機構 2015年 Attention is all you need.→だいぶ吹かしている
3. フィードフォワードで全結合層に流す
4. 未来の単語を見ないようにマスク
・注意機構には2種類
- ソース・ターゲット注意機構
> 受け取った情報に対して狙うべき、近い情報のみに注意
- 自己注意機構
> CNNの考え方に似ていて、周辺情報全ても考慮されるイメージ
(文脈を反映した表現が得られる)
・フィードフォワードネットワーク
- 位置情報を保持したまま順伝播させるような全結合層
・マルチヘッドアテンション
- 8つに分けて、アンサンブル学習のイメージ
・デコーダ
- セルフアテンションとソース・ターゲットアテンションの両方が使われている
・Add
- 入出力の差分を学習させる
- 学習、テストエラーの提言
・Norm
- バッチ正規化
実装演習
lecture_chap1_exercise_public.ipynb
最後だけ、ランタイムエラーになる
RuntimeError: "index_select_out_cuda_impl" not implemented for 'Float'
となっている。
パイトーチのバージョンによるものらしい
参考)